<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>定义Symbol的几种方式</title>
</head>
<body>
    <script>
        // 用Symbol直接声明的方式定义两个变量，是不相等的
        let hd1 = Symbol();
        let hd2 = Symbol();
        console.log(hd1 == hd2);    //false

        // symbol声明的变量，类型就是symbol
        console.log(typeof hd1);

        // symbol声明的变量,不能通过压值的方式改变类型
        // hd2.name = 'xiasnn';
        // console.log(h2); //报错

        // 可以打印symbol的描述
        let hd3 = Symbol('后盾人视频很全面');
        console.log(hd3);   //Symbol(后盾人视频很全面)
        console.log(hd3.toString());    //Symbol(后盾人视频很全面)
        console.log(hd3.description);   //后盾人视频很全面



        // 用Symbol.for()声明（Symbol.for()为全局声明）的两个变量，是相等的
        let houdunren1 = Symbol.for();
        let houdunren2 = Symbol.for();
        console.log(houdunren1 == houdunren2);  //true

        // 打印symbol.for()的描述
        let houdunren3 = Symbol.for('xiasnn');
        console.log(Symbol.keyFor(houdunren3));
    </script>
</body>
</html>